{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b15e1c3c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "import variable_encode as var_encode\n",
    "from sklearn.metrics import confusion_matrix,recall_score, auc, roc_curve,precision_score,accuracy_score\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.metrics import cohen_kappa_score\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import roc_auc_score\n",
    "from sklearn.metrics import roc_curve\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib\n",
    "matplotlib.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文\n",
    "matplotlib.rcParams['axes.unicode_minus']=False     # 正常显示负号\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\") ##忽略警告"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a4631022",
   "metadata": {},
   "source": [
    "# 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7f91c0ae",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_train_1 = pd.read_excel('最终2018年改变分箱最后19个特征数据的分箱.xlsx')\n",
    "data_test_1 = pd.read_excel('最终2019年-1改变分箱最后19个特征数据的分箱.xlsx')\n",
    "data_test_2 = pd.read_excel('最终2019年-2改变分箱最后19个特征数据的分箱.xlsx')\n",
    "data_test_3 = pd.read_excel('最终2019年-3改变分箱最后19个特征数据的分箱.xlsx')\n",
    "data_test_4 = pd.read_excel('最终2019年-4改变分箱最后19个特征数据的分箱.xlsx')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "6dd49069",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_train_1 = data_train_1.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_1 = data_test_1.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_2 = data_test_2.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_3 = data_test_3.drop(columns = ['mths_since_recent_inq'])\n",
    "data_test_4 = data_test_4.drop(columns = ['mths_since_recent_inq'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "e7b6aeb9",
   "metadata": {},
   "outputs": [],
   "source": [
    " ####取出训练数据与测试数据\n",
    "var_all = list(data_train_1.columns)\n",
    "var_all.remove('loan_status')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "6db5fbd2",
   "metadata": {},
   "outputs": [],
   "source": [
    "####变量归一化\n",
    "scaler = StandardScaler().fit(data_train_1[var_all])\n",
    "data_train_1[var_all] = scaler.transform(data_train_1[var_all])  \n",
    "data_test_1[var_all] = scaler.transform(data_test_1[var_all])\n",
    "data_test_2[var_all] = scaler.transform(data_test_2[var_all])\n",
    "data_test_3[var_all] = scaler.transform(data_test_3[var_all])\n",
    "data_test_4[var_all] = scaler.transform(data_test_4[var_all])\n",
    "    \n",
    "x_train = np.array(data_train_1[var_all])\n",
    "y_train = np.array(data_train_1.loan_status)\n",
    "    \n",
    "x_test_1 = np.array(data_test_1[var_all])\n",
    "y_test_1 = np.array(data_test_1.loan_status)\n",
    "\n",
    "x_test_2 = np.array(data_test_2[var_all])\n",
    "y_test_2 = np.array(data_test_2.loan_status)\n",
    "\n",
    "x_test_3 = np.array(data_test_3[var_all])\n",
    "y_test_3 = np.array(data_test_3.loan_status)\n",
    "\n",
    "x_test_4 = np.array(data_test_4[var_all])\n",
    "y_test_4 = np.array(data_test_4.loan_status)    "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b3dfaf2",
   "metadata": {},
   "source": [
    "# 模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "800afeb3",
   "metadata": {},
   "outputs": [],
   "source": [
    "DT_model_1 = DecisionTreeClassifier(max_depth = 8,\n",
    "                                    class_weight={1: 3, 0: 1})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a7ffdd74",
   "metadata": {},
   "outputs": [],
   "source": [
    "DT_model_fit = DT_model_1.fit(x_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "8bef5d3b",
   "metadata": {},
   "outputs": [],
   "source": [
    "    ##属性\n",
    "#    DT_model_fit.feature_importances_\n",
    "#    DT_model_fit.max_features_\n",
    "#    DT_model_fit.n_outputs_"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "792b1621",
   "metadata": {},
   "source": [
    "## 模型预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "b8acbe38",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred = DT_model_fit.predict(x_train)\n",
    "y_proba = DT_model_fit.predict_proba(x_train)\n",
    "y_score_train = DT_model_fit.predict_proba(x_train)[:, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "d100cf40",
   "metadata": {},
   "outputs": [],
   "source": [
    "y_pred_1 = DT_model_fit.predict(x_test_1)\n",
    "y_proba_1 = DT_model_fit.predict_proba(x_test_1)\n",
    "y_score_test_1 = DT_model_fit.predict_proba(x_test_1)[:, 1]\n",
    "\n",
    "y_pred_2 = DT_model_fit.predict(x_test_2)\n",
    "y_proba_2 = DT_model_fit.predict_proba(x_test_2)\n",
    "y_score_test_2 = DT_model_fit.predict_proba(x_test_2)[:, 1]\n",
    "\n",
    "y_pred_3 = DT_model_fit.predict(x_test_3)\n",
    "y_proba_3 = DT_model_fit.predict_proba(x_test_3)\n",
    "y_score_test_3 = DT_model_fit.predict_proba(x_test_3)[:, 1]\n",
    "\n",
    "y_pred_4 = DT_model_fit.predict(x_test_4)\n",
    "y_proba_4 = DT_model_fit.predict_proba(x_test_4)\n",
    "y_score_test_4 = DT_model_fit.predict_proba(x_test_4)[:, 1]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "13ae5cdd",
   "metadata": {},
   "source": [
    "# 模型评估"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b6ee3da6",
   "metadata": {},
   "source": [
    "## 混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "37c74d94",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>122159</td>\n",
       "      <td>72544</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>22896</td>\n",
       "      <td>42550</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        预测为好   预测为坏\n",
       "标签为好  122159  72544\n",
       "标签为坏   22896  42550"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix = confusion_matrix(y_train,y_pred)\n",
    "cnf_matrix = pd.DataFrame(cnf_matrix,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "15f18df1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>15223</td>\n",
       "      <td>8994</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>3698</td>\n",
       "      <td>5704</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  15223  8994\n",
       "标签为坏   3698  5704"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix1 = confusion_matrix(y_test_1,y_pred_1)\n",
    "cnf_matrix1 = pd.DataFrame(cnf_matrix1,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "117814e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>15044</td>\n",
       "      <td>9081</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>3689</td>\n",
       "      <td>5781</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  15044  9081\n",
       "标签为坏   3689  5781"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix2 = confusion_matrix(y_test_2,y_pred_2)\n",
    "cnf_matrix2 = pd.DataFrame(cnf_matrix2,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "7182431f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>15477</td>\n",
       "      <td>9071</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>3654</td>\n",
       "      <td>5590</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  15477  9071\n",
       "标签为坏   3654  5590"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix3 = confusion_matrix(y_test_3,y_pred_3)\n",
    "cnf_matrix3 = pd.DataFrame(cnf_matrix3,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "6e4690a0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>预测为好</th>\n",
       "      <th>预测为坏</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>标签为好</th>\n",
       "      <td>15115</td>\n",
       "      <td>9043</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>标签为坏</th>\n",
       "      <td>3697</td>\n",
       "      <td>5686</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       预测为好  预测为坏\n",
       "标签为好  15115  9043\n",
       "标签为坏   3697  5686"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cnf_matrix4 = confusion_matrix(y_test_4,y_pred_4)\n",
    "cnf_matrix4 = pd.DataFrame(cnf_matrix4,index = [\"标签为好\",\"标签为坏\"],columns = ['预测为好','预测为坏'])\n",
    "cnf_matrix4"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "80d9376f",
   "metadata": {},
   "source": [
    "## 评估指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "29b867c3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率</th>\n",
       "      <th>AUC</th>\n",
       "      <th>KS值</th>\n",
       "      <th>kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>决策树</th>\n",
       "      <td>0.633133</td>\n",
       "      <td>0.694611</td>\n",
       "      <td>0.277567</td>\n",
       "      <td>0.221732</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          准确率       AUC       KS值     kappa\n",
       "决策树  0.633133  0.694611  0.277567  0.221732"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_DT = accuracy_score(y_train,y_pred)\n",
    "kappa_DT = cohen_kappa_score(y_train,y_pred)\n",
    "auc_DT = roc_auc_score(y_train, y_score_train)\n",
    "fpr_DT, tpr_DT, thresholds_roc_DT = roc_curve(y_train,y_score_train)\n",
    "ks_DT = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_DT, fpr_DT)])\n",
    "results = pd.DataFrame()\n",
    "results['准确率'] = [acc_DT]\n",
    "results['AUC'] = [auc_DT]\n",
    "results['KS值'] = [ks_DT]\n",
    "results['kappa'] = [kappa_DT]\n",
    "results.index = ['决策树']\n",
    "results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "6941c1c2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_1</th>\n",
       "      <th>AUC_1</th>\n",
       "      <th>KS值_1</th>\n",
       "      <th>kappa_1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>决策树</th>\n",
       "      <td>0.622475</td>\n",
       "      <td>0.670734</td>\n",
       "      <td>0.24722</td>\n",
       "      <td>0.200706</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        准确率_1     AUC_1    KS值_1   kappa_1\n",
       "决策树  0.622475  0.670734  0.24722  0.200706"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_DT = accuracy_score(y_test_1,y_pred_1)\n",
    "kappa_DT = cohen_kappa_score(y_test_1,y_pred_1)\n",
    "auc_DT = roc_auc_score(y_test_1, y_score_test_1)\n",
    "fpr_DT, tpr_DT, thresholds_roc_DT = roc_curve(y_test_1,y_score_test_1)\n",
    "ks_DT = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_DT, fpr_DT)])\n",
    "results1 = pd.DataFrame()\n",
    "results1['准确率_1'] = [acc_DT]\n",
    "results1['AUC_1'] = [auc_DT]\n",
    "results1['KS值_1'] = [ks_DT]\n",
    "results1['kappa_1'] = [kappa_DT]\n",
    "results1.index = ['决策树']\n",
    "results1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "bada0a5f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_2</th>\n",
       "      <th>AUC_2</th>\n",
       "      <th>KS值_2</th>\n",
       "      <th>kappa_2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>决策树_2</th>\n",
       "      <td>0.619884</td>\n",
       "      <td>0.666021</td>\n",
       "      <td>0.24206</td>\n",
       "      <td>0.199533</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          准确率_2     AUC_2    KS值_2   kappa_2\n",
       "决策树_2  0.619884  0.666021  0.24206  0.199533"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_DT = accuracy_score(y_test_2,y_pred_2)\n",
    "kappa_DT = cohen_kappa_score(y_test_2,y_pred_2)\n",
    "auc_DT = roc_auc_score(y_test_2, y_score_test_2)\n",
    "fpr_DT, tpr_DT, thresholds_roc_DT = roc_curve(y_test_2,y_score_test_2)\n",
    "ks_DT = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_DT, fpr_DT)])\n",
    "results2 = pd.DataFrame()\n",
    "results2['准确率_2'] = [acc_DT]\n",
    "results2['AUC_2'] = [auc_DT]\n",
    "results2['KS值_2'] = [ks_DT]\n",
    "results2['kappa_2'] = [kappa_DT]\n",
    "results2.index = ['决策树_2']\n",
    "results2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "6d33e260",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_3</th>\n",
       "      <th>AUC_3</th>\n",
       "      <th>KS值_3</th>\n",
       "      <th>kappa_3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>决策树</th>\n",
       "      <td>0.623432</td>\n",
       "      <td>0.664137</td>\n",
       "      <td>0.240116</td>\n",
       "      <td>0.198869</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        准确率_3     AUC_3     KS值_3   kappa_3\n",
       "决策树  0.623432  0.664137  0.240116  0.198869"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_DT = accuracy_score(y_test_3,y_pred_3)\n",
    "kappa_DT = cohen_kappa_score(y_test_3,y_pred_3)\n",
    "auc_DT = roc_auc_score(y_test_3, y_score_test_3)\n",
    "fpr_DT, tpr_DT, thresholds_roc_DT = roc_curve(y_test_3,y_score_test_3)\n",
    "ks_DT = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_DT, fpr_DT)])\n",
    "results3 = pd.DataFrame()\n",
    "results3['准确率_3'] = [acc_DT]\n",
    "results3['AUC_3'] = [auc_DT]\n",
    "results3['KS值_3'] = [ks_DT]\n",
    "results3['kappa_3'] = [kappa_DT]\n",
    "results3.index = ['决策树']\n",
    "results3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "69337abf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率_4</th>\n",
       "      <th>AUC_4</th>\n",
       "      <th>KS值_4</th>\n",
       "      <th>kappa_4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>决策树</th>\n",
       "      <td>0.620166</td>\n",
       "      <td>0.666347</td>\n",
       "      <td>0.237422</td>\n",
       "      <td>0.197289</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        准确率_4     AUC_4     KS值_4   kappa_4\n",
       "决策树  0.620166  0.666347  0.237422  0.197289"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc_DT = accuracy_score(y_test_4,y_pred_4)\n",
    "kappa_DT = cohen_kappa_score(y_test_4,y_pred_4)\n",
    "auc_DT = roc_auc_score(y_test_4, y_score_test_4)\n",
    "fpr_DT, tpr_DT, thresholds_roc_DT = roc_curve(y_test_4,y_score_test_4)\n",
    "ks_DT = max([trp_ - fpr_ for trp_, fpr_ in zip(tpr_DT, fpr_DT)])\n",
    "results4 = pd.DataFrame()\n",
    "results4['准确率_4'] = [acc_DT]\n",
    "results4['AUC_4'] = [auc_DT]\n",
    "results4['KS值_4'] = [ks_DT]\n",
    "results4['kappa_4'] = [kappa_DT]\n",
    "results4.index = ['决策树']\n",
    "results4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a0e0ce38",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc1=[results1['准确率_1'],results2['准确率_2'],results3['准确率_3'],results4['准确率_4']]\n",
    "ac1=np.mean(acc1)\n",
    "bc1=np.std(acc1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "67c62473",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc2=[results1['AUC_1'],results2['AUC_2'],results3['AUC_3'],results4['AUC_4']]\n",
    "ac2=np.mean(acc2)\n",
    "bc2=np.std(acc2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "1bc329bc",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc3=[results1['KS值_1'],results2['KS值_2'],results3['KS值_3'],results4['KS值_4']]\n",
    "ac3=np.mean(acc3)\n",
    "bc3=np.std(acc3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "6342379e",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc4=[results1['kappa_1'],results2['kappa_2'],results3['kappa_3'],results4['kappa_4']]\n",
    "ac4=np.mean(acc4)\n",
    "bc4=np.std(acc4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "aa187216",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率的均值</th>\n",
       "      <th>准确率的方差</th>\n",
       "      <th>AUC的均值</th>\n",
       "      <th>KS值的均值</th>\n",
       "      <th>kappa的均值</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>决策树</th>\n",
       "      <td>0.621489</td>\n",
       "      <td>0.001506</td>\n",
       "      <td>0.66681</td>\n",
       "      <td>0.241705</td>\n",
       "      <td>0.199099</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       准确率的均值    准确率的方差   AUC的均值    KS值的均值  kappa的均值\n",
       "决策树  0.621489  0.001506  0.66681  0.241705  0.199099"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results11 =pd.DataFrame({'准确率的均值':{'决策树':ac1},'准确率的方差':{'决策树':bc1},\n",
    "                   'AUC的均值':{'决策树':ac2},'KS值的均值':{'决策树':ac3},\n",
    "                   'kappa的均值':{'决策树':ac4}})\n",
    "results11"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e6c11990",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "52b53b74",
   "metadata": {},
   "source": [
    "## ROC和KS曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "5e564841",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_DT_1= y_proba_1\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_1))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_1,y_proba_DT_1[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "42dd39ac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_DT_2= y_proba_2\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_2))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_2,y_proba_DT_2[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "e00085c2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_DT_3= y_proba_3\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_3))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_3,y_proba_DT_3[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "c0dcaced",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_DT_4= y_proba_4\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_4))):\n",
    "    fpr,tpr,thresholds = roc_curve(y_test_4,y_proba_DT_4[:,i],pos_label = i)\n",
    "axe1.plot(fpr,tpr)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds,tpr,label = 'TPR')\n",
    "axe2.plot(1 - thresholds,fpr,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "fc04ee37",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "y_proba_DT_1= y_proba_1\n",
    "y_proba_DT_2= y_proba_2\n",
    "y_proba_DT_3= y_proba_3\n",
    "y_proba_DT_4= y_proba_4\n",
    "fig,(axe1,axe2) = plt.subplots(1,2,sharey = True)\n",
    "for i in range(len(np.unique(y_test_1))):\n",
    "    fpr_1,tpr_1,thresholds_1 = roc_curve(y_test_1,y_proba_DT_1[:,i],pos_label = i)\n",
    "for i in range(len(np.unique(y_test_2))):\n",
    "    fpr_2,tpr_2,thresholds_2 = roc_curve(y_test_2,y_proba_DT_2[:,i],pos_label = i)\n",
    "for i in range(len(np.unique(y_test_3))):\n",
    "    fpr_3,tpr_3,thresholds_3 = roc_curve(y_test_3,y_proba_DT_3[:,i],pos_label = i)\n",
    "for i in range(len(np.unique(y_test_4))):\n",
    "    fpr_4,tpr_4,thresholds_4 = roc_curve(y_test_4,y_proba_DT_4[:,i],pos_label = i)    \n",
    "axe1.plot(fpr_1,tpr_1)\n",
    "axe1.plot(fpr_2,tpr_2)\n",
    "axe1.plot(fpr_3,tpr_3)\n",
    "axe1.plot(fpr_4,tpr_4)\n",
    "axe1.plot([0,1],[0,1])\n",
    "axe1.set_title('ROC')\n",
    "axe2.plot(1 - thresholds_1,tpr_1,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_1,fpr_1,label = 'FPR')\n",
    "axe2.plot(1 - thresholds_2,tpr_2,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_2,fpr_2,label = 'FPR')\n",
    "axe2.plot(1 - thresholds_3,tpr_3,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_3,fpr_3,label = 'FPR')\n",
    "axe2.plot(1 - thresholds_4,tpr_4,label = 'TPR')\n",
    "axe2.plot(1 - thresholds_4,fpr_4,label = 'FPR')\n",
    "plt.xlim(0,)\n",
    "axe2.set_title('KS')\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "0f10d887",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.font_manager as fm\n",
    "import matplotlib\n",
    "matplotlib.rcParams['font.sans-serif']=['SimHei']   \n",
    "matplotlib.rcParams['axes.unicode_minus']=False  \n",
    "font={'family':'SimHei',\"size\":18}\n",
    "matplotlib.rc(\"font\",**font)\n",
    "fig=plt.figure(figsize=(5,5))\n",
    "plt.title('ROC曲线')\n",
    "plt.plot(fpr_1,tpr_1,color='g',label=\"ROC_1\")\n",
    "plt.plot(fpr_2,tpr_2,color='r',label=\"ROC_2\")\n",
    "plt.plot(fpr_3,tpr_3,color='b',label=\"ROC_3\")\n",
    "plt.plot(fpr_4,tpr_4,color='y',label=\"ROC_4\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "0b15a14a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.font_manager as fm\n",
    "import matplotlib\n",
    "matplotlib.rcParams['font.sans-serif']=['SimHei']   \n",
    "matplotlib.rcParams['axes.unicode_minus']=False  \n",
    "font={'family':'SimHei',\"size\":18}\n",
    "matplotlib.rc(\"font\",**font)\n",
    "fig=plt.figure(figsize=(5,5))\n",
    "plt.title('KS曲线')\n",
    "plt.plot(1 - thresholds_1,tpr_1,color='g',label='TPR')\n",
    "plt.plot(1 - thresholds_1,fpr_1,color='g',label='FPR')\n",
    "plt.plot(1 - thresholds_2,tpr_2,color='r',label='TPR')\n",
    "plt.plot(1 - thresholds_2,fpr_2,color='r',label='FPR')\n",
    "plt.plot(1 - thresholds_3,tpr_3,color='b',label='TPR')\n",
    "plt.plot(1 - thresholds_3,tpr_3,color='b',label='FPR')\n",
    "plt.plot(1 - thresholds_4,tpr_4,color='y',label='TPR')\n",
    "plt.plot(1 - thresholds_4,tpr_4,color='y',label='FPR')\n",
    "plt.xlim(0,)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7e2bcd5b",
   "metadata": {},
   "source": [
    "##  k折交叉检验"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "13ca6bbe",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import KFold\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.model_selection import train_test_split\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\") ##忽略警告"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "dc116c58",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>准确率均值</th>\n",
       "      <th>准确率标准差</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>决策树</th>\n",
       "      <td>0.619837</td>\n",
       "      <td>0.009803</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        准确率均值    准确率标准差\n",
       "决策树  0.619837  0.009803"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#ef muti_score(model):\n",
    "warnings.filterwarnings('ignore')\n",
    "accuracy = cross_val_score(DT_model_1, x_train, y_train, scoring='accuracy', cv=5)\n",
    "acc_mean=accuracy.mean()\n",
    "acc_std=accuracy.std()\n",
    "results = pd.DataFrame()\n",
    "results[\"准确率均值\"] = [acc_mean]\n",
    "results[\"准确率标准差\"] = [acc_std]\n",
    "results.index = ['决策树']\n",
    "results\n",
    "#rint(\"准确率均值\",accuracy.mean())\n",
    "#rint(\"准确率方差\",accuracy.var())"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bba18e3a",
   "metadata": {},
   "source": [
    "## 模型psi计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "cd1bf561",
   "metadata": {},
   "outputs": [],
   "source": [
    "def cal_psi(actual, predict, bins=10):\n",
    "    actual_min = actual.min()  # 实际中的最小概率\n",
    "    actual_max = actual.max()  # 实际中的最大概率\n",
    "    binlen = (actual_max - actual_min) / bins\n",
    "    cuts = [actual_min + i * binlen for i in range(1, bins)]#设定分组\n",
    "    cuts.insert(0, -float(\"inf\"))\n",
    "    cuts.append(float(\"inf\"))\n",
    "    actual_cuts = np.histogram(actual, bins=cuts)#将actual等宽分箱\n",
    "    predict_cuts = np.histogram(predict, bins=cuts)#将predict按actual的分组等宽分箱\n",
    "    actual_df = pd.DataFrame(actual_cuts[0],columns=['actual'])\n",
    "    predict_df = pd.DataFrame(predict_cuts[0], columns=['predict'])\n",
    "    psi_df = pd.merge(actual_df,predict_df,right_index=True,left_index=True)\n",
    "    psi_df['actual_rate'] = (psi_df['actual'] + 1) / psi_df['actual'].sum()#计算占比，分子加1，防止计算PSI时分子分母为0\n",
    "    psi_df['predict_rate'] = (psi_df['predict'] + 1) / psi_df['predict'].sum()\n",
    "    psi_df['psi'] = (psi_df['actual_rate'] - psi_df['predict_rate']) * np.log(\n",
    "        psi_df['actual_rate'] / psi_df['predict_rate'])\n",
    "    psi = psi_df['psi'].sum()\n",
    "    return psi, psi_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "c8f5c1a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0016919546144462108,\n",
       "    actual  predict  actual_rate  predict_rate       psi\n",
       " 0      48        6     0.000188      0.000208  0.000002\n",
       " 1   11656     1481     0.044809      0.044082  0.000012\n",
       " 2   30449     3969     0.117048      0.118088  0.000009\n",
       " 3   35434     4642     0.136210      0.138106  0.000026\n",
       " 4   52480     6840     0.201734      0.203486  0.000015\n",
       " 5   51797     6957     0.199109      0.206966  0.000304\n",
       " 6   42624     5478     0.163848      0.162973  0.000005\n",
       " 7   26407     3211     0.101511      0.095541  0.000362\n",
       " 8    7662      892     0.029456      0.026562  0.000299\n",
       " 9    1592      143     0.006123      0.004283  0.000658)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values11=cal_psi(y_proba[:,1], y_proba_1[:,1],10)\n",
    "psi_values11"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "c76f3950",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.001111309888059464,\n",
       "    actual  predict  actual_rate  predict_rate           psi\n",
       " 0      48        4     0.000188      0.000149  9.307615e-06\n",
       " 1   11656     1534     0.044809      0.045691  1.720726e-05\n",
       " 2   30449     3929     0.117048      0.116982  3.792097e-08\n",
       " 3   35434     4575     0.136210      0.136211  8.644672e-13\n",
       " 4   52480     6655     0.201734      0.198125  6.517330e-05\n",
       " 5   51797     6998     0.199109      0.208335  4.178555e-04\n",
       " 6   42624     5522     0.163848      0.164399  1.850194e-06\n",
       " 7   26407     3287     0.101511      0.097872  1.328735e-04\n",
       " 8    7662      934     0.029456      0.027832  9.217587e-05\n",
       " 9    1592      157     0.006123      0.004703  3.748287e-04)"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values12=cal_psi(y_proba[:,1], y_proba_2[:,1],10)\n",
    "psi_values12"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "c9ef8289",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0022289641263661354,\n",
       "    actual  predict  actual_rate  predict_rate       psi\n",
       " 0      48        6     0.000188      0.000207  0.000002\n",
       " 1   11656     1603     0.044809      0.047467  0.000153\n",
       " 2   30449     3942     0.117048      0.116684  0.000001\n",
       " 3   35434     4687     0.136210      0.138731  0.000046\n",
       " 4   52480     6878     0.201734      0.203569  0.000017\n",
       " 5   51797     6868     0.199109      0.203273  0.000086\n",
       " 6   42624     5552     0.163848      0.164329  0.000001\n",
       " 7   26407     3239     0.101511      0.095881  0.000321\n",
       " 8    7662      895     0.029456      0.026515  0.000309\n",
       " 9    1592      122     0.006123      0.003640  0.001292)"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values13=cal_psi(y_proba[:,1], y_proba_3[:,1],10)\n",
    "psi_values13"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "f3f5063c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0022011226915426745,\n",
       "    actual  predict  actual_rate  predict_rate           psi\n",
       " 0      48        5     0.000188      0.000179  4.883135e-07\n",
       " 1   11656     1637     0.044809      0.048836  3.465281e-04\n",
       " 2   30449     3982     0.117048      0.118750  2.456711e-05\n",
       " 3   35434     4414     0.136210      0.131630  1.566801e-04\n",
       " 4   52480     6734     0.201734      0.200799  4.347048e-06\n",
       " 5   51797     6967     0.199109      0.207746  3.667404e-04\n",
       " 6   42624     5520     0.163848      0.164605  3.481133e-06\n",
       " 7   26407     3291     0.101511      0.098149  1.132691e-04\n",
       " 8    7662      840     0.029456      0.025074  7.059232e-04\n",
       " 9    1592      151     0.006123      0.004532  4.790981e-04)"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "psi_values14=cal_psi(y_proba[:,1], y_proba_4[:,1],10)\n",
    "psi_values14"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "537ad4e0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.0018083378301036212"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bcc2=[psi_values11[0],psi_values12[0],psi_values13[0],psi_values14[0]]\n",
    "bbc2=np.mean(bcc2)\n",
    "bbc2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "4df630b2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>PSI</th>\n",
       "      <th>PSI_1</th>\n",
       "      <th>PSI_2</th>\n",
       "      <th>PSI_3</th>\n",
       "      <th>PSI_4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>决策树</th>\n",
       "      <td>0.001808</td>\n",
       "      <td>0.001692</td>\n",
       "      <td>0.001111</td>\n",
       "      <td>0.002229</td>\n",
       "      <td>0.002201</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          PSI     PSI_1     PSI_2     PSI_3     PSI_4\n",
       "决策树  0.001808  0.001692  0.001111  0.002229  0.002201"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results111 =pd.DataFrame({'PSI':{'决策树':bbc2},'PSI_1':{'决策树':psi_values11[0]},'PSI_2':{'决策树':psi_values12[0]},\n",
    "                   'PSI_3':{'决策树':psi_values13[0]},'PSI_4':{'决策树':psi_values14[0]}})\n",
    "results111"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "99db6416",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
